Child properties are on the way out.
popover = gtk_popover_new (GTK_WIDGET (npe->cnt->priv->node_tree));
gtk_popover_set_pointing_to (GTK_POPOVER (popover), &npe->rect);
- editor = gtk_inspector_prop_editor_new (G_OBJECT (npe->node), npe->prop_name, FALSE);
+ editor = gtk_inspector_prop_editor_new (G_OBJECT (npe->node), npe->prop_name);
gtk_widget_show (editor);
gtk_container_add (GTK_CONTAINER (popover), editor);
}
// vim: set et sw=2 ts=2:
-// vim: set et sw=2 ts=2:
{
GObject *object;
gchar *name;
- gboolean is_child_property;
GtkWidget *editor;
};
G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorPropEditor, gtk_inspector_prop_editor, GTK_TYPE_BOX);
-static gboolean
-is_child_property (GParamSpec *pspec)
-{
- return g_param_spec_get_qdata (pspec, g_quark_from_string ("is-child-prop")) != NULL;
-}
-
-static GParamSpec *
-mark_child_property (GParamSpec *pspec)
-{
- if (pspec)
- g_param_spec_set_qdata (pspec, g_quark_from_string ("is-child-prop"), GINT_TO_POINTER (TRUE));
- return pspec;
-}
-
static GParamSpec *
find_property (GtkInspectorPropEditor *editor)
{
- if (editor->priv->is_child_property)
- {
- GtkWidget *widget = GTK_WIDGET (editor->priv->object);
- GtkWidget *parent = gtk_widget_get_parent (widget);
-
- return mark_child_property (gtk_container_class_find_child_property (G_OBJECT_GET_CLASS (parent), editor->priv->name));
- }
-
return g_object_class_find_property (G_OBJECT_GET_CLASS (editor->priv->object), editor->priv->name);
}
gchar *with_detail;
DisconnectData *dd;
- if (is_child_property (spec))
- with_detail = g_strconcat ("child-notify::", spec->name, NULL);
- else
- with_detail = g_strconcat ("notify::", spec->name, NULL);
+ with_detail = g_strconcat ("notify::", spec->name, NULL);
dd = g_new (DisconnectData, 1);
static void
get_property_value (GObject *object, GParamSpec *pspec, GValue *value)
{
- if (is_child_property (pspec))
- {
- GtkWidget *widget = GTK_WIDGET (object);
- GtkWidget *parent = gtk_widget_get_parent (widget);
-
- gtk_container_child_get_property (GTK_CONTAINER (parent),
- widget, pspec->name, value);
- }
- else
- g_object_get_property (object, pspec->name, value);
+ g_object_get_property (object, pspec->name, value);
}
static void
set_property_value (GObject *object, GParamSpec *pspec, GValue *value)
{
- if (is_child_property (pspec))
- {
- GtkWidget *widget = GTK_WIDGET (object);
- GtkWidget *parent = gtk_widget_get_parent (widget);
-
- gtk_container_child_set_property (GTK_CONTAINER (parent),
- widget, pspec->name, value);
- }
- else
- g_object_set_property (object, pspec->name, value);
+ g_object_set_property (object, pspec->name, value);
}
static void
notify_property (GObject *object, GParamSpec *pspec)
{
- if (is_child_property (pspec))
- {
- GtkWidget *widget = GTK_WIDGET (object);
- GtkWidget *parent = gtk_widget_get_parent (widget);
-
- gtk_container_child_notify (GTK_CONTAINER (parent), widget, pspec->name);
- }
- else
- g_object_notify (object, pspec->name);
+ g_object_notify (object, pspec->name);
}
static void
g_value_set_string (value, r->priv->name);
break;
- case PROP_IS_CHILD_PROPERTY:
- g_value_set_boolean (value, r->priv->is_child_property);
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
r->priv->name = g_value_dup_string (value);
break;
- case PROP_IS_CHILD_PROPERTY:
- r->priv->is_child_property = g_value_get_boolean (value);
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec);
break;
g_object_class_install_property (object_class, PROP_NAME,
g_param_spec_string ("name", "Name", "The property name",
NULL, G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (object_class, PROP_IS_CHILD_PROPERTY,
- g_param_spec_boolean ("is-child-property", "Child property", "Whether this is a child property",
- FALSE, G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
}
GtkWidget *
gtk_inspector_prop_editor_new (GObject *object,
- const gchar *name,
- gboolean is_child_property)
+ const gchar *name)
{
return g_object_new (GTK_TYPE_INSPECTOR_PROP_EDITOR,
"object", object,
"name", name,
- "is-child-property", is_child_property,
NULL);
}
GType gtk_inspector_prop_editor_get_type (void);
GtkWidget *gtk_inspector_prop_editor_new (GObject *object,
- const gchar *name,
- gboolean is_child_property);
+ const gchar *name);
gboolean gtk_inspector_prop_editor_should_expand (GtkInspectorPropEditor *editor);
{
PROP_0,
PROP_OBJECT_TREE,
- PROP_CHILD_PROPERTIES,
PROP_SEARCH_ENTRY
};
GHashTable *prop_iters;
gulong notify_handler_id;
GtkInspectorObjectTree *object_tree;
- gboolean child_properties;
GtkTreeViewColumn *name_column;
GtkTreeViewColumn *attribute_column;
GtkWidget *tree;
g_value_take_object (value, pl->priv->object_tree);
break;
- case PROP_CHILD_PROPERTIES:
- g_value_set_boolean (value, pl->priv->child_properties);
- break;
-
case PROP_SEARCH_ENTRY:
g_value_take_object (value, pl->priv->search_entry);
break;
pl->priv->object_tree = g_value_get_object (value);
break;
- case PROP_CHILD_PROPERTIES:
- pl->priv->child_properties = g_value_get_boolean (value);
- break;
-
case PROP_SEARCH_ENTRY:
pl->priv->search_entry = g_value_get_object (value);
break;
popover = gtk_popover_new (GTK_WIDGET (tv));
gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect);
- editor = gtk_inspector_prop_editor_new (pl->priv->object, name, pl->priv->child_properties);
+ editor = gtk_inspector_prop_editor_new (pl->priv->object, name);
gtk_widget_show (editor);
gtk_container_add (GTK_CONTAINER (popover), editor);
g_object_class_install_property (object_class, PROP_OBJECT_TREE,
g_param_spec_object ("object-tree", "Object Tree", "Object tree",
GTK_TYPE_WIDGET, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
- g_object_class_install_property (object_class, PROP_CHILD_PROPERTIES,
- g_param_spec_boolean ("child-properties", "Child properties", "Child properties",
- FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class, PROP_SEARCH_ENTRY,
g_param_spec_object ("search-entry", "Search Entry", "Search Entry",
gboolean writable;
g_value_init (&gvalue, prop->value_type);
- if (pl->priv->child_properties)
- {
- GtkWidget *parent;
-
- parent = gtk_widget_get_parent (GTK_WIDGET (pl->priv->object));
- gtk_container_child_get_property (GTK_CONTAINER (parent),
- GTK_WIDGET (pl->priv->object),
- prop->name, &gvalue);
- }
- else
- g_object_get_property (pl->priv->object, prop->name, &gvalue);
+ g_object_get_property (pl->priv->object, prop->name, &gvalue);
strdup_value_contents (&gvalue, &value, &type);
gtk_editable_set_text (GTK_EDITABLE (pl->priv->search_entry), "");
gtk_stack_set_visible_child_name (GTK_STACK (pl->priv->search_stack), "title");
- if (pl->priv->child_properties)
- {
- GtkWidget *parent;
-
- if (!GTK_IS_WIDGET (object))
- {
- gtk_widget_hide (GTK_WIDGET (pl));
- return TRUE;
- }
-
- parent = gtk_widget_get_parent (GTK_WIDGET (object));
- if (!parent || !GTK_IS_CONTAINER (parent))
- {
- gtk_widget_hide (GTK_WIDGET (pl));
- return TRUE;
- }
-
- gtk_tree_view_column_set_visible (pl->priv->attribute_column, FALSE);
-
- props = gtk_container_class_list_child_properties (G_OBJECT_GET_CLASS (parent), &num_properties);
- }
- else
- {
- gtk_tree_view_column_set_visible (pl->priv->attribute_column, GTK_IS_CELL_RENDERER (object));
-
- props = g_object_class_list_properties (G_OBJECT_GET_CLASS (object), &num_properties);
- }
+ gtk_tree_view_column_set_visible (pl->priv->attribute_column, GTK_IS_CELL_RENDERER (object));
+ props = g_object_class_list_properties (G_OBJECT_GET_CLASS (object), &num_properties);
pl->priv->object = object;
/* Listen for updates */
pl->priv->notify_handler_id =
- g_signal_connect_object (object,
- pl->priv->child_properties ? "child-notify" : "notify",
- G_CALLBACK (gtk_inspector_prop_list_prop_changed_cb),
- pl, 0);
+ g_signal_connect_object (object, "notify",
+ G_CALLBACK (gtk_inspector_prop_list_prop_changed_cb), pl, 0);
gtk_widget_show (GTK_WIDGET (pl));
gtk_label_set_label (GTK_LABEL (iw->object_title), title);
g_free (title);
- gtk_inspector_prop_list_set_object (GTK_INSPECTOR_PROP_LIST (iw->child_prop_list), selected);
gtk_inspector_misc_info_set_object (GTK_INSPECTOR_MISC_INFO (iw->misc_info), selected);
gtk_inspector_css_node_tree_set_object (GTK_INSPECTOR_CSS_NODE_TREE (iw->widget_css_node_tree), selected);
gtk_inspector_size_groups_set_object (GTK_INSPECTOR_SIZE_GROUPS (iw->size_groups), selected);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, object_details_button);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, select_object);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, prop_list);
- gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, child_prop_list);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, widget_css_node_tree);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, widget_recorder);
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, object_title);
</property>
</object>
</child>
- <child>
- <object class="GtkStackPage">
- <property name="name">child-prop-search</property>
- <property name="child">
- <object class="GtkSearchEntry" id="child_prop_search_entry">
- <property name="margin">6</property>
- <property name="max-width-chars">40</property>
- </object>
- </property>
- </object>
- </child>
</object>
</child>
</object>
<property name="title" translatable="yes">Properties</property>
<property name="child">
<object class="GtkInspectorPropList" id="prop_list">
- <property name="child-properties">False</property>
<property name="object-tree">object_tree</property>
<property name="search-entry">prop_search_entry</property>
</object>
</property>
</object>
</child>
- <child>
- <object class="GtkStackPage">
- <property name="name">child-properties</property>
- <property name="title" translatable="yes">Child Properties</property>
- <property name="child">
- <object class="GtkInspectorPropList" id="child_prop_list">
- <property name="child-properties">True</property>
- <property name="object-tree">object_tree</property>
- <property name="search-entry">child_prop_search_entry</property>
- </object>
- </property>
- </object>
- </child>
<child>
<object class="GtkStackPage">
<property name="name">css-nodes</property>